

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LianBao
 * Date: 2024-05-30
 * Time: 21:58
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("2024-3-1");

    }

    public static void main1(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);

        //1.创建数据源对象
        //利用了向上转型和向下转型,代码可读性有点低,我不喜欢
/*        DataSource dataSource = new MysqlDataSource();//MysqlDataSource是刚才导入的.jar包里面的
        ((MysqlDataSource)dataSource).setURL();//数据源,要访问的数据库在哪里
        ((MysqlDataSource)dataSource).setUser();//访问数据库的账户
        ((MysqlDataSource)dataSource).setPassword();//访问数据库的密码*/

        //另一种方法创建数据源对象,我比较喜欢
        MysqlDataSource dataSource1 = new MysqlDataSource();
        dataSource1.setURL("jdbc:mysql://127.0.0.1:3306/jdbctest?characterEncoding=utf8&useSSL=false");
        //dataSource1.setURL("jdbc:mysql://数据库服务器的IP地址/数据库名?characterEncoding=utf8&useSSL=false");
        dataSource1.setUser("root");
        dataSource1.setPassword("111111");

        //2.和数据库建立网络连接
        Connection connection = dataSource1.getConnection();

        //3.构造SQL语句
        String sql = "insert into student values(?,?)";//问号表示占位符
        PreparedStatement statement = connection.prepareStatement(sql);

        int id = scanner.nextInt();
        String name = scanner.next();

        //设置占位符的相关值
        statement.setInt(1, id);
        statement.setString(2, name);

        // 4. 把 SQL 发送到服务器上进行执行
        // 返回值就表示, 这个 sql , 影响到 几行
        int n = statement.executeUpdate();
        System.out.println(n + "行受到影响");

        //5.关闭资源
        statement.close();
        connection.close();
    }
}
